Snake: Control Flow Distributed Software Transactional Memory
نویسندگان
چکیده
Remote Method Invocation (RMI), Java’s remote procedure call implementation, provides a mechanism for designing distributed Java technology-based applications. It allows methods to be invoked from other Java virtual machines, possibly at different hosts. RMI uses lockbased concurrency control, which suffers from distributed deadlocks, livelocks, and scalability and composability challenges. We present SnakeDSTM, a distributed software transactional memory (D-STM) that is based on the RMI as a mechanism for handling remote calls and transactional memory for distributed concurrency control, as an alternative to RMI/locks. Critical sections are defined as atomic transactions, in which reads and writes to shared, local and remote objects appear to take effect instantaneously. The novelty of Snake-DSTM is in manipulating transactional memory by moving control to remote nodes, rather than remote nodes’ data being copied to the node at which the transaction runs. Transaction metadata is detached from the transactional context, and the dynamic two phase commitment protocol (D2PC) is employed to coordinate the voting process among participating nodes toward making distributed transactional commit decisions. We propose a simple programming model using (Java 5) annotations to define critical sections and remote methods. Instrumentation is used to generate code at class-load time, which significantly simplifies user-space end code. No changes are needed to the underlying virtual machine or compiler. We describe Snake-DSTM’s architecture and implementation, and report on experimental studies comparing it against competing models including RMI with mutual exclusion and read/write locks, distributed shared memory (DSM), and dataflow-based D-STM. Our studies show that Snake-DSTM outperforms competitors by up to 12× on different workloads using a 120-node system.
منابع مشابه
Supporting Transactional Memory in Distributed Systems based on the Data-Flow Model
A distributed TM model supports the TM API in a distributed system consisting of a network of nodes that communicate by message-passing links. Supporting TM in distributed systems is motivated by the difficulties of lockbased synchronization methods employed by existing distributed control-flow programming models such as RPCs. We consider Herlihy and Sun’s data-flow distributed TM model [3]. In...
متن کاملReducing the Integration Complexity of Software Transactional Memory with TBoost.STM
Transactional memory (TM) is a concurrency control paradigm that reduces the difficulty of writing parallel programs and supports the efficient execution of some concurrent workloads. While TM offers advantages over other abstractions, it can sometimes require complex hardware, programming language extensions, specific compiler support, or enforce impractical software design, making it unrealis...
متن کاملOn Open Nesting in Distributed Transactional Memory: Technical Report
Distributed Transactional Memory (DTM) is a recent but promising model for programming distributed systems. It aims to present programmers with a simple to use distributed concurrency control abstraction (transactions), while maintaining performance and scalability similar to distributed fine-grained locks. Any complications usually associated with such locks (e.g., distributed deadlocks) are a...
متن کاملSupporting STM in Distributed Systems: Mechanisms and a Java Framework
We present HyFlow — a distributed software transactional memory (D-STM) framework for distributed concurrency control. Lockbased concurrency control suffers from drawbacks including deadlocks, livelocks, and scalability and composability challenges. These problems are exacerbated in distributed systems due to their distributed versions which are more complex to cope with (e.g., distributed dead...
متن کاملA Quorum-Based Replication Framework for Distributed Software Transactional Memory
Distributed software transactional memory (D-STM) promises to alleviate difficulties with lock-based (distributed) synchronization and object performance bottlenecks in distributed systems. Past single copy data-flow (SC) D-STM proposals keeps only one writable copy of each object in the system and are not fault-tolerant in the presence of network node/link failures in large-scale distributed s...
متن کامل